Lịch sử tuyến tính thông qua đẩy nhanh Chỉ có thể xảy ra khi lịch sử nhánh là một đường thẳng các nhánh con. Ngay lúc nhánh gốc và nhánh tính năng tách ra, thao tác 'di chuyển con trỏ' đơn giản trong quá trình hợp nhất đẩy nhanh trở nên bất khả thi về mặt toán học.
1. Sự khác biệt rõ ràng
Các hợp nhất đẩy nhanh là không được phản ánh trong lịch sử dự án. Điều này có nghĩa là sự tồn tại độc đáo của nhánh bị xóa bỏ gần như hoàn toàn khi tích hợp. Ngược lại, các hợp nhất ba nhánh giữ lại câu chuyện về công việc song song.
2. Nguyên tắc nhà sử học
Nhánh chính master branch hoạt động như nhà sử học cho toàn bộ dự án của chúng ta. Nó chỉ có thể ghi lại những gì chúng ta cho phép nó thấy; khi các nhánh tách ra, chúng ta buộc phải tạo ra một 'sự kiện' mới—a commit hợp nhất—để nối liền khoảng cách và hòa giải hai thực tế khác nhau đang phát triển đồng thời.
3. Phát hiện sự tách nhánh
Sử dụng git log --oneline, các nhà phát triển có thể trực quan hóa nơi các nhánh tách ra. Nếu nhánh 'master' đã tiến lên trước khi bạn tạo nhánh mới, Git không thể di chuyển con trỏ tiến mà không làm mất công việc mới trên nhánh master.